package com.bai.localshop.service;

import com.bai.localshop.pojo.dto.RolePageDTO;
import com.bai.localshop.pojo.dto.RoleSaveDTO;
import com.bai.localshop.pojo.dto.RoleUpdateDTO;
import com.bai.localshop.pojo.dto.RoleUpdateStatusDTO;
import com.bai.localshop.pojo.vo.RoleOptionVO;
import com.bai.localshop.pojo.vo.RolePageVO;
import com.bai.localshop.pojo.vo.RoleVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bai.localshop.pojo.entity.Role;

import java.util.List;

/**
 * 角色服务接口
 */
public interface RoleService extends IService<Role> {
    /**
     * 获取角色列表
     * @return
     */
    List<RoleOptionVO> listRole();

    /**
     * 分页查询角色
     */
    IPage<RolePageVO> pageQuery(RolePageDTO requestParam);
    
    /**
     * 查询所有角色
     */
    Page<Role> getAllRoles();
    
    /**
     * 根据ID查询角色
     */
    RoleVO getById(Long id);

    /**
     * 修改角色
     */
    void update(RoleUpdateDTO requestParam);

    /**
     * 删除角色
     */
    void deleteById(Long id);

    /**
     * 更新角色状态
     */
    void updateStatus(RoleUpdateStatusDTO requestParam);

    /**
     * 保存角色
     */
    void saveRole(RoleSaveDTO requestParam);
}